import json
import time
import pandas as pd
from pathlib import Path
from rich.console import Console
from rich.text import Text

from scraper import Crawler
from recorder import DataRecorder


class UI:
    def __init__(self):
        self.s = Crawler()
        self.r = DataRecorder()
        self.p = Path('../data')
        self.console = Console()

    async def foo(self):
        start = time.time()
        with self.console.status(status="[green]НАЧИНАЮ СБОР ДАННЫХ", spinner='dots') as status:
            time.sleep(2)

            status.update(status="[green]ВСЕ ДАННЫЕ ПО ВАШЕМУ ЗАПРОСУ СОБРАНЫ. НАЧИНАЮ ОБРАБОТКУ!", spinner='dots')
            data = await self.s.scraper()
            self.p.mkdir(parents=True, exist_ok=True)
            status.update("[green]ОБРАБОТКА ЗАКОНЧЕНА. ЗАПИСИВЫЮ ДАННЫЕ В CSV,XML,JSON and EXEL")
            time.sleep(3)
            await self.r.data_recording(data)


        delta = time.time() - start
        coins_len = Text(f"НАЙДЕНО И ОБРАБОТАНО {len(data)} ТОВАРОВ.")
        coins_len.stylize("green")
        spent_time = Text(f"ПОТРАЧЕННОЕ ВРЕМЯ {delta} СЕКУНД.")
        spent_time.stylize("green")
        self.console.print(coins_len)
        self.console.print(spent_time)
